VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "ClsGestion"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public Event DataChanged()

'definicion de clases a contener
Public WithEvents orset As ClsRecordset
Attribute orset.VB_VarHelpID = -1

'definicion de atributos de la clase
Public codigo As String
Public gestion As Integer
Public estado As Boolean

'definicion de datos privados de la clase
'Metodos constructor y destructor
Private Sub Class_Initialize()
    Set orset = New ClsRecordset
    orset.setCampos dbCampos(ges)
    orset.setTablas Array(ges)
End Sub
Private Sub Class_Terminate()
    Set orset = Nothing
End Sub
'Metodos de clase
Public Sub consulta(Optional condiciones As Variant, Optional orden As Variant)
    orset.consulta condiciones, orden
End Sub
Public Sub consultaGral(Optional campos As Variant, Optional tablas As Variant, Optional condiciones As Variant, Optional orden As Variant)
    orset.consultaGral campos, tablas, condiciones, orden
End Sub
Public Sub consultaDatos(codig As String)
    orset.consulta Array(ges_id & "=" & codig)
    orset.CierraRec
End Sub
Public Sub Buscar(optGestion As String)
    orset.consulta Array(ges_gestion & "=" & optGestion)
End Sub
'metodos de clase
Public Sub seleccionar(optId As String)
    'modifica variables globales de gestion
    consultaDatos optId
    GGestion.codigo = Me.codigo
    GGestion.consultaDatos GGestion.codigo
    'guarda en el archivo SICCS.ini
    Dim VarLng As String
    'captura codigo y nombre de nodo del text del combo
    VarLng = escribe("GESTION", "id", GGestion.codigo)
    VarLng = escribe("GESTION", "gestion", GGestion.gestion)
End Sub
Public Sub cambiarEstado(gesId As String)
    Dim estadoTemp As String
    consultaDatos gesId
    If orset.numRegistros > 0 Then
        orset.CierraRec
        If Me.estado = "1" Then
            estadoTemp = "0"
        Else
            estadoTemp = "1"
        End If
        Modificar Me.codigo, Me.gestion, estadoTemp
    Else
        orset.CierraRec
    End If
End Sub
Public Function estaAbierta(Optional gesId As String = "", Optional gesNombre As String = "") As Boolean
    If gesId <> "" Then
        orset.consulta Array(ges_id & "=" & gesId)
    ElseIf gesNombre <> "" Then
        orset.consulta Array(ges_gestion & "=" & gesNombre)
    Else
        'es la gestion seleccionada
        'SIEMPRE consulta para actualizar el estado si se hubiera modificado en otra terminal
        orset.consulta Array(ges_id & "=" & GGestion.codigo)
    End If
    estaAbierta = Me.estado
End Function
'metodos de base de datos
Public Sub Nuevo(newGestion As String, newEstado As String)
    'valida que no exista
    orset.consulta Array(ges_gestion & "=" & newGestion)
    If orset.numRegistros > 0 Then
        MsgBox "La gestion ya existe", vbOKOnly, "Ya Existe"
    Else
        orset.sInsert Array("", newGestion, newEstado)
    End If
    orset.CierraRec
End Sub
Public Sub Modificar(codig As String, newGestion As String, newEstado As String)
    'valida que no exista, pero no toma en cuenta la gestion que se modifica
    orset.consulta Array(ges_gestion & "=" & newGestion, ges_id & "<>" & codig)
    If orset.numRegistros > 0 Then
        MsgBox "La gestion ya existe", vbOKOnly, "Error"
    Else
        orset.sUpdate Array(codig, newGestion, newEstado)
    End If
End Sub
Public Sub Borrar(codig As String)
    orset.sDelete Array(ges_id & "=" & codig)
End Sub
'para recarga de los miembros de la clase
Private Sub Reload_members()
    With orset
        codigo = .getDato(ges_id)
        gestion = .getDato(ges_gestion)
        estado = .getDato(ges_estado)
    End With
    RaiseEvent DataChanged
End Sub
Private Sub orset_DataChanged()
    Reload_members
End Sub
